﻿#define _CRT_SECURE_NO_WARNINGS
//#include<iostream>
//#include<string>
//#include<algorithm>
//using namespace std;

//int main()
//
//{
//
//	string a = "hello world";
//
//	string b = a;
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	string c = b;
//
//	c = "";
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	a = "";
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	return 0;
//
//}
//

//int main()
//{
//
//	string str("Hello Bit.");
//
//	str.reserve(111);
//
//	str.resize(5);
//
//	str.reserve(50);
//
//	cout << str.size() << ":" << str.capacity() << endl;
//
//	return 0;

//}


//int main()
//
//{
//
//	string strText = "How are you?";
//
//	string strSeparator = " ";
//
//	string strResult;
//
//	int size_pos = 0;
//
//	int size_prev_pos = 0;
//
//	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)
//
//	{
//
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//
//		cout << strResult << " ";
//
//		size_prev_pos = ++size_pos;
//
//	}
//
//	if (size_prev_pos != strText.size())
//
//	{
//
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//
//		cout << strResult << " ";
//
//	}
//
//	cout << endl;
//
//	return 0;
//
//}

//class Solution {
//public:
//    int myAtoi(string str) {
//        long int ret = 0,
//            flag = 1;
//        string::iterator it = str.begin();
//        while (*it == ' ')
//            ++it;
//        if (*it == '-' || *it == '+')
//        {
//            if (*it == '-')
//                flag = -1;
//            ++it;
//        }
//        if (*it > '9' || *it < '0')
//            return 0;
//        while (it != str.end())
//        {
//            if (*it >= '0' && *it <= '9')
//            {
//                ret = ret * 10 + (*it++ - '0');
//                if (ret >= INT_MAX && flag == 1)
//                    return INT_MAX;
//                if (ret > INT_MAX && flag == -1)
//                    return INT_MIN;
//            }
//            else
//                break;
//        }
//        return ret * flag;
//    }
//};

//class Solution {
//public:
//    string addStrings(string num1, string num2) {
//        int next = 0, x1 = 0, x2 = 0, sum = 0;
//        int end1 = num1.size()-1,
//            end2 = num2.size()-1;
//        string ret;
//        while (end1 >= 0 || end2 >= 0)
//        {
//            x1 = end1 >= 0 ? num1[end1--] - '0' : 0;
//            x2 = end2 >= 0 ? num2[end2--] - '0' : 0;
//            sum = x1 + x2 + next;
//            next = sum / 10;
//            sum = sum % 10;
//            ret += sum + '0';
//
//        }
//        if (next == 1)
//            ret += '1';
//        reverse(ret.begin(), ret.end());
//        return ret;
//    }
//};
//
//int main()
//{
//    Solution s;
//    s.addStrings("9", "9");
//    return 0;
//}

//int main() {
//    string s;
//    getline(cin,s);
//    int left = 0, right = 0, len = 0;
//    while (right<=s.size())
//    {
//        while (s[right] != ' ' && s[right] != '\0')
//            ++right;
//        len = right - left;
//        left = ++right;
//    }
//    cout << len;
//}

//#include<iostream>
//using namespace std;


//class Solution {
//public:
//
//    bool isPalindrome(string s) {
//        if (s.empty()) return true;
//        string::iterator left = s.begin(),
//            right = s.end() - 1;
//        while (left < right)
//        {
//            while (left < right && !(isalpha(*left) || isdigit(*left))) ++left;
//            while (left < right && !(isalpha(*right) || isdigit(*right))) --right;
//            if (tolower(*left) == tolower(*right))
//            {
//                ++left;
//                --right;
//            }
//            else
//                return false;
//        }
//        return true;
//    }
//};

//class Solution {
//public:
//    string reverseStr(string s, int k) {
//        int n = s.size();
//        for (int i = 0; i < n; i += 2 * k)
//        {
//            if (i + k > n)
//                reverse(s.begin() + i, s.end());
//            else
//                reverse(s.begin() + i, s.begin() + i + k);
//        }
//        return s;
//    }
//};

//class Solution {
//public:
//    string reverseWords(string s) {
//        string::iterator cur = s.begin(), prev = s.begin();
//        while (cur != s.end())
//        {
//            while (*cur != ' ' && cur!=s.end()-1)
//                ++cur;
//            reverse(prev, cur);
//            ++cur;
//            prev = cur;
//        }
//        return s;
//    }
//};
//
//int main()
//{
//    Solution s;
//    s.reverseWords("Let's take LeetCode contest");
//    return 0;
//}

#include"string.h"

namespace MyNamespace
{
	void Test_string1()
	{
		string s1;
		string s2("hello world");
		cout << s1.c_str() << endl;
		cout << s2.c_str() << endl;
		s1 = s2;
		cout << s1.c_str() << endl;
		string s3(s2);
		cout << s3.c_str() << endl;
		s1 = s1;
		cout << s1.c_str() << endl;
	}

	void Test_string2()
	{
		string s1("abc123");
		cout << s1.c_str() << endl;

		s1.push_back('d');
		cout << s1.c_str() << endl;

		s1 += 'e';
		cout << s1.c_str() << endl;

		s1 += 'e';
		cout << s1.c_str() << endl; s1 += 'e';
		cout << s1.c_str() << endl; s1 += 'e';
		cout << s1.c_str() << endl; s1 += 'e';
		cout << s1.c_str() << endl;
		s1+="adasd";
		cout << s1.c_str() << endl;
	}

	void Test_string3()
	{
		string s1("abc123");
		cout << s1.c_str() << endl;
		cout << s1.size() << endl;
		cout << s1.capacity() << endl;

		s1.resize(3);
		if (s1.empty())
			cout << "yes" << endl;
		cout << s1.c_str() << endl;
		cout << s1.size() << endl;
		cout << s1.capacity() << endl;

		s1.resize(0);
		if (s1.empty())
			cout << "yes" << endl;
	}

	void Test_string4()
	{
		string s1("123456");
		cout << s1[3] << endl;
		s1[1] = '9';
		const char& x = s1[0];
		cout << x << endl;
		cout << s1.c_str() << endl;
	}
	void Test_string5()
	{
		string s1("abcd1234");
		string s2("abcd2122");
		s2.insert(0, "222");
		cout << s2;
	}
}

namespace test
{
	void test()
	{
		string s1;
		string s2("abcd");
		s2 = s2;
		s1 = s2;
		
		
	}
}

int main()
{
	//MyNamespace::Test_string1();
	//MyNamespace::Test_string2();
	//MyNamespace::Test_string3();
	//MyNamespace::Test_string4();
	//MyNamespace::Test_string5();
	MyNamespace::Test_string5();
	return 0;
}